package com.disease.api.service.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.disease.api.service.config.ReportAnnotation;
import com.disease.api.service.entity.DeathCardWorkFlow;
import com.disease.api.service.entity.RegionInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.sql.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("emr_death_info")
public class EmrDeathInfoVO {

    private String id;

    @ReportAnnotation(name = "序列号",stage = "1", notNull = false)
    @JSONField(name="serial_number")
    private String serialNumber;

    @ReportAnnotation(name = "报告单位编码",stage = "1", notNull = false)
    @JSONField(name="gbcode")
    private String gbcode;

    @ReportAnnotation(name = "机构编码",stage = "1", notNull = true)
    @JSONField(name="orgCode")
    private String orgCode;

    @JSONField(name="gbname")
    private String gbname;

    @JSONField(name="orgName")
    private String orgName;

    @JSONField(name="cardState")
    @TableField("card_state")
    @ReportAnnotation(name = "死亡卡类型",stage = "1", notNull = true)
    private String cardState;

    @ReportAnnotation(name = "患者姓名",stage = "1", notNull = false)
    private String patientId;

    @ReportAnnotation(name = "患者姓名",stage = "1", notNull = true)
    private String name;

    @ReportAnnotation(name = "死亡时是否处于妊娠期",stage = "1", notNull = false)
    private String isPre;

    @ReportAnnotation(name = "死亡时是否处于妊娠期",stage = "1", notNull = false)
    private String isPreName;

    @ReportAnnotation(name = "性别编码",stage = "1", notNull = true)
    private String gender;

    @JSONField(name="genderName")
    private String genderName;

    @JSONField(name="nation")
    @ReportAnnotation(name = "名族",stage = "1", notNull = true)
    private String nation;

    @JSONField(name="nationName")
    private String nationName;

    @ReportAnnotation(name = "国家或地区",stage = "1", notNull = true)
    private String country;

    @JSONField(name="countryName")
    private String countryName;

    @JSONField(name="idcardType")
    private String idcardType;

    private String idcardTypeName;

    @ReportAnnotation(name = "证件编码",stage = "1", notNull = false)
    private String idcardCode;

    @ReportAnnotation(name = "家属证件类型",stage = "1", notNull = true)
    private String guardianIdcardType;

    @ReportAnnotation(name = "家属证件号码",stage = "1", notNull = true)
    private String guardianIdcardCode;

    @ReportAnnotation(name = "出生日期",stage = "1", notNull = true)
    private String birthDate;

    @JSONField(name="deathDate")
    @ReportAnnotation(name = "死亡日期",stage = "1", notNull = true)
    private String deathDate;

    @JSONField(name="ageUnitCode")
    @ReportAnnotation(name = "死亡年龄单位",stage = "1", notNull = true)
    private String ageUnitCode;

    @JSONField(name="ageUnitName")
    private String ageUnitName;

    @JSONField(name="age")
    @ReportAnnotation(name = "死亡年龄(岁)",stage = "1", notNull = true)
    private String age;


    @JSONField(name="maritalStatus")
    @ReportAnnotation(name = "婚姻状态",stage = "1", notNull = true)
    private String maritalStatus;

    @JSONField(name="maritalStatusName")
    private String maritalStatusName;

    @ReportAnnotation(name = "文化程度",stage = "1", notNull = true)
    private String educatoinLevel;

    private String educatoinLevelName;



    @ReportAnnotation(name = "户籍地址类型",stage = "1", notNull = true)
    @JSONField(name="domicileType")
    private String domicileType;

    @JSONField(name="domicileName")
    private String domicileName;


    @ReportAnnotation(name = "户籍地址类型",stage = "1", notNull = true)
    @JSONField(name="domicileCode")
    private String domicileCode;

    @ReportAnnotation(name = "户籍详细地址",stage = "1", notNull = true)
    @JSONField(name="domicileDetail")
    private String domicileDetail;

    @ReportAnnotation(name = "户籍地村编码",stage = "1", notNull = false)
    @JSONField(name="domicileVallage")
    private String domicileVallage;


    @ReportAnnotation(name = "常住地类型",stage = "1", notNull = true)
    @JSONField(name="obodeType")
    private String obodeType;

    @ReportAnnotation(name = "常住地址编码",stage = "1", notNull = true)
    @JSONField(name="obodeCode")
    private String obodeCode;

    @JSONField(name="obodeVallage")
    @ReportAnnotation(name = "常住村编码",stage = "1", notNull = false)
    private String obodeVallage;

    @ReportAnnotation(name = "常住地详细地址",stage = "1", notNull = true)
    @JSONField(name="obodeDetail")
    private String obodeDetail;

    @ReportAnnotation(name = "个人身份",stage = "1", notNull = true)
    @JSONField(name="codrisOccupation")
    private String codrisOccupation;

    @ReportAnnotation(name = "个人身份名称",stage = "1", notNull = false)
    @JSONField(name="codrisOccupationName")
    private String codrisOccupationName;

    @JSONField(name="ageGroup")
    @ReportAnnotation(name = "年龄组",stage = "1", notNull = false)
    private String ageGroup;


    @JSONField(name="deathplaceCode")
    @ReportAnnotation(name = "死亡地点",stage = "1", notNull = true)
    private String deathplaceCode;

    @JSONField(name="deathplaceName")
    private String deathplaceName;



    @JSONField(name="employerOrg")
    @ReportAnnotation(name = "工作单位",stage = "1", notNull = false)
    private String employerOrg;


    @ReportAnnotation(name = "可联系家属姓名",stage = "1", notNull = true)
    @JSONField(name="guardianName")
    private String guardianName;

    @ReportAnnotation(name = "家属联系电话",stage = "1", notNull = true)
    @JSONField(name="guardianTel")
    private String guardianTel;

    @ReportAnnotation(name = "家属住址或工作单位",stage = "1", notNull = true)
    @JSONField(name="guardianAddress")
    private String guardianAddress;

    @ReportAnnotation(name = "直接导致死亡的疾病A",stage = "1", notNull = true)
    @JSONField(name="causeA")
    private String causeA;

    @ReportAnnotation(name = "疾病A的icd10编码",stage = "1", notNull = false)
    @JSONField(name="causeIcd10A")
    private String causeIcd10A;

    @ReportAnnotation(name = "疾病A的icd10编码",stage = "1", notNull = false)
    @JSONField(name="causeIcd10AName")
    private String causeIcd10AName;

    @ReportAnnotation(name = "A疾病发病至死亡的时间间隔",stage = "1", notNull = false)
    @JSONField(name="intervalTimeA")
    private String intervalTimeA;

    @ReportAnnotation(name = "间隔时间单位",stage = "1", notNull = false)
    @JSONField(name="intervalUnitcodeA")
    private String intervalUnitcodeA;

    @ReportAnnotation(name = "直接导致死亡的疾病B",stage = "1", notNull = false)
    @JSONField(name="causeB")
    private String causeB;

    @ReportAnnotation(name = "疾病B的icd10编码",stage = "1", notNull = false)
    @JSONField(name="causeIcd10B")
    private String causeIcd10B;

    @ReportAnnotation(name = "B疾病发病至死亡的时间间隔",stage = "1", notNull = false)
    @JSONField(name="intervalTimeB")
    private String intervalTimeB;

    @ReportAnnotation(name = "间隔时间单位",stage = "1", notNull = false)
    @JSONField(name="intervalUnitcodeB")
    private String intervalUnitcodeB;

    @ReportAnnotation(name = "直接导致死亡的疾病C",stage = "1", notNull = false)
    @JSONField(name="causeC")
    private String causeC;

    @ReportAnnotation(name = "疾病C的icd10编码",stage = "1", notNull = false)
    @JSONField(name="causeIcd10C")
    private String causeIcd10C;


    @ReportAnnotation(name = "疾病C发病至死亡的时间间隔",stage = "1", notNull = false)
    @JSONField(name="intervalTimeC")
    private String intervalTimeC;

    @ReportAnnotation(name = "间隔时间单位",stage = "1", notNull = false)
    @JSONField(name="intervalUnitcodeC")
    private String intervalUnitcodeC;

    @ReportAnnotation(name = "直接导致死亡的疾病D",stage = "1", notNull = false)
    @JSONField(name="causeD")
    private String causeD;

    @ReportAnnotation(name = "疾病D的icd10编码",stage = "1", notNull = false)
    @JSONField(name="causeIcd10D")
    private String causeIcd10D;

    @ReportAnnotation(name = "疾病D发病至死亡的时间间隔",stage = "1", notNull = false)
    @JSONField(name="intervalTimeD")
    private String intervalTimeD;

    @ReportAnnotation(name = "间隔时间类型",stage = "1", notNull = false)
    @JSONField(name="intervalUnitcodeD")
    private String intervalUnitcodeD;

    @ReportAnnotation(name = "其他疾病原因",stage = "1", notNull = false)
    @JSONField(name="causeOther")
    private String causeOther;

    @ReportAnnotation(name = "其他病因icd10编码",stage = "1", notNull = false)
    @JSONField(name="icdcodeOther")
    private String icdcodeOther;

    @ReportAnnotation(name = "其他病因icd10名称",stage = "1", notNull = false)
    @JSONField(name="icdnameOther")
    private String icdnameOther;

    @ReportAnnotation(name = "根本死亡原因描述",stage = "1", notNull = true)
    @JSONField(name="basicCauseDesc")
    private String basicCauseDesc;

    @ReportAnnotation(name = "根本死亡原因icd10编码",stage = "1", notNull = true)
    @JSONField(name="basicIcd10")
    private String basicIcd10;

    @ReportAnnotation(name = "其他疾病诊断集合",stage = "1", notNull = false)
    @JSONField(name="taDiagnoseDtos")
    private String taDiagnoseDtos;

    @ReportAnnotation(name = "最高诊断单位",stage = "1", notNull = true)
    @JSONField(name="diagnosticUnitCode")
    private String diagnosticUnitCode;

    @ReportAnnotation(name = "最高诊断单位",stage = "1", notNull = false)
    private String diagnosticUnitName;

    @ReportAnnotation(name = "最高诊断依据",stage = "1", notNull = true)
    @JSONField(name="diagnosticBasisCode")
    private String diagnosticBasisCode;

    @ReportAnnotation(name = "最高诊断依据",stage = "1", notNull = false)
    private String diagnosticBasisName;

    @ReportAnnotation(name = "住院号",stage = "1", notNull = false)
    @JSONField(name="hospitalNum")
    private String hospitalNum;

    @ReportAnnotation(name = "填卡医生",stage = "1", notNull = true)
    @JSONField(name="doctorName")
    private String doctorName;

    @ReportAnnotation(name = "填卡时间",stage = "1", notNull = true)
    @JSONField(name="fillCardDate")
    private String fillCardDate;

    @ReportAnnotation(name = "报告人",stage = "1", notNull = true)
    @JSONField(name="reportName")
    private String reportName;

    @ReportAnnotation(name = "民警签名",stage = "1", notNull = false)
    @JSONField(name="policeName")
    private String policeName;

    @ReportAnnotation(name = "备注",stage = "1", notNull = false)
    @JSONField(name="cardNotes")
    private String cardNotes;

    @ReportAnnotation(name = "死者生前病史及症状体征",stage = "1", notNull = false)
    @JSONField(name="historyDisease")
    private String historyDisease;

    @ReportAnnotation(name = "被调查者姓名",stage = "1", notNull = false)
    @JSONField(name="respName")
    private String respName;

    @ReportAnnotation(name = "与死者关系",stage = "1", notNull = false)
    @JSONField(name="respRelation")
    private String respRelation;

    @ReportAnnotation(name = "联系地址或工作单位",stage = "1", notNull = false)
    @JSONField(name="respAddr")
    private String respAddr;

    @ReportAnnotation(name = "被调查者电话号码",stage = "1", notNull = false)
    @JSONField(name="respTel")
    private String respTel;

    @ReportAnnotation(name = "死因推断",stage = "1", notNull = false)
    @JSONField(name="verbalAutopsy")
    private String verbalAutopsy;

    @ReportAnnotation(name = "调查者签名",stage = "1", notNull = false)
    @JSONField(name="surveyMan")
    private String surveyMan;

    @ReportAnnotation(name = "调查日期",stage = "1", notNull = false)
    @JSONField(name="surveyDate")
    private String surveyDate;

    @ReportAnnotation(name = "录入人",stage = "1", notNull = true)
    @JSONField(name="createMan")
    private String createMan;

    @ReportAnnotation(name = "录入单位编码",stage = "1", notNull = true)
    @JSONField(name="createOrgCode")
    private String createOrgCode;

    @ReportAnnotation(name = "录入日期",stage = "1", notNull = true)
    @JSONField(name="createDate")
    private String createDate;

    private String deptName;

    private String deptCode;

}
